home *** CD-ROM | disk | FTP | other *** search
/ CICA 1995 September (Japanese) / CICA Shareware for Windows CD-ROM (Walnut Creek) (September 1995) (Japanese) (Disc 2).iso / disc2 / nt / ntperf.exe / PERFTOOLS / SRC / PERFMON / REGISTRY.C_ / REGISTRY.C
Encoding:
C/C++ Source or Header  |  1993-05-15  |  3.4 KB  |  121 lines

  1. /*****************************************************************************
  2.  *
  3.  *  Registry.c - This module handles requests for registry data, and
  4.  *               reading/writing of window placement data
  5.  *
  6.  *  Microsoft Confidential
  7.  *  Copyright (c) 1992-1993 Microsoft Corporation
  8.  *
  9.  *
  10.  ****************************************************************************/
  11.  
  12. #include <stdio.h>
  13.  
  14. #include "perfmon.h"
  15. #include "registry.h"
  16. #include "utils.h"      // for StringToWindowPlacement
  17.  
  18. static TCHAR PerfmonNamesKey[] = TEXT("SOFTWARE\\Microsoft\\PerfMon") ;
  19. static TCHAR WindowKeyName[] = TEXT("WindowPos") ;
  20.  
  21. VOID LoadLineGraphSettings(PGRAPHSTRUCT lgraph)
  22. {
  23.    lgraph->gMaxValues = DEFAULT_MAX_VALUES;
  24.    lgraph->gOptions.bLegendChecked = DEFAULT_F_DISPLAY_LEGEND;
  25.    lgraph->gOptions.bLabelsChecked = DEFAULT_F_DISPLAY_CALIBRATION;
  26.  
  27.    return;
  28. }
  29.  
  30. VOID LoadRefreshSettings(PGRAPHSTRUCT lgraph)
  31. {
  32.    lgraph->gInterval = DEF_GRAPH_INTERVAL;
  33.    lgraph->gOptions.eTimeInterval = (FLOAT) lgraph->gInterval / (FLOAT) 1000.0 ;
  34.    return;
  35. }
  36.  
  37.  
  38. BOOL LoadMainWindowPlacement (HWND hWnd)
  39.    {
  40.    WINDOWPLACEMENT   WindowPlacement ; 
  41.    TCHAR             szWindowPlacement [TEMP_BUF_LEN] ;
  42.    HKEY              hKeyNames ;
  43.    DWORD             Size;
  44.    DWORD             Type;
  45.    DWORD             Status;
  46.    
  47.    Status = RegOpenKeyEx(HKEY_CURRENT_USER, PerfmonNamesKey,
  48.       0L, KEY_READ, &hKeyNames) ;
  49.  
  50.    if (Status == ERROR_SUCCESS)
  51.       {
  52.       Size = sizeof(szWindowPlacement) ;
  53.  
  54.       Status = RegQueryValueEx(hKeyNames, WindowKeyName, NULL,
  55.          &Type, (LPBYTE)szWindowPlacement, &Size) ;
  56.       RegCloseKey (hKeyNames) ;
  57.  
  58.       if (Status == ERROR_SUCCESS)
  59.          {
  60.          StringToWindowPlacement (szWindowPlacement, &WindowPlacement) ;
  61.          SetWindowPlacement (hWnd, &WindowPlacement) ;
  62.          bPerfmonIconic = IsIconic(hWnd) ;
  63.          return (TRUE) ;
  64.          }
  65.       }
  66.  
  67.    if (Status != ERROR_SUCCESS)
  68.       {
  69.       // open registry failed, use Max as default
  70.       ShowWindow (hWnd, SW_SHOWMAXIMIZED) ;
  71.       return (FALSE) ;
  72.       }
  73.    }
  74.  
  75.  
  76.  
  77. BOOL SaveMainWindowPlacement (HWND hWnd)
  78.    {
  79.    WINDOWPLACEMENT   WindowPlacement ;
  80.    TCHAR             ObjectType [2] ;
  81.    TCHAR             szWindowPlacement [TEMP_BUF_LEN] ;
  82.    HKEY              hKeyNames = 0 ;
  83.    DWORD             Size ;
  84.    DWORD             Status ;
  85.    DWORD             dwDisposition ;
  86.  
  87.    ObjectType [0] = TEXT(' ') ;
  88.    ObjectType [1] = TEXT('\0') ;
  89.  
  90.    GetWindowPlacement (hWnd, &WindowPlacement) ;
  91.    WindowPlacementToString (&WindowPlacement, szWindowPlacement) ;
  92.  
  93.    // try to create it first
  94.    Status = RegCreateKeyEx(HKEY_CURRENT_USER, PerfmonNamesKey, 0L,
  95.       ObjectType, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS | KEY_WRITE,
  96.       NULL, &hKeyNames, &dwDisposition) ;
  97.  
  98.    // if it has been created before, then open it
  99.    if (dwDisposition == REG_OPENED_EXISTING_KEY)
  100.       {
  101.       Status = RegOpenKeyEx(HKEY_CURRENT_USER, PerfmonNamesKey, 0L,
  102.          KEY_WRITE, &hKeyNames) ;
  103.       }
  104.  
  105.    // we got the handle, now store the window placement data
  106.    if (Status == ERROR_SUCCESS)
  107.       {
  108.       Size = (lstrlen (szWindowPlacement) + 1) * sizeof (TCHAR) ;
  109.  
  110.       Status = RegSetValueEx(hKeyNames, WindowKeyName, 0,
  111.          REG_SZ, (LPBYTE)szWindowPlacement, Size) ;
  112.  
  113.       RegCloseKey (hKeyNames) ;
  114.  
  115.       }
  116.  
  117.    return (Status == ERROR_SUCCESS) ;
  118.    }
  119.  
  120.  
  121.